{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Multiple Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Shows how to calculate just the best fit, or - using \"statsmodels\" - all the\n",
    "corresponding statistical parameters.\n",
    "\n",
    "Also shows how to make 3d plots.\n",
    "\n",
    "Author: Thomas Haslwanter, Date:   June-2014"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "# The standard imports\n",
    "%pylab inline\n",
    "import pandas as pd\n",
    "# For the 3d plot\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "from matplotlib import cm\n",
    "\n",
    "# For the statistic\n",
    "from statsmodels.formula.api import ols"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generate and show the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colorbar.Colorbar at 0x1763c5a2a20>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1763c1376a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(-5,5,101)\n",
    "(X,Y) = np.meshgrid(x,x)\n",
    "Z = -5 + 3*X-0.5*Y+np.random.randn(np.shape(X)[0], np.shape(X)[1])\n",
    "\n",
    "# Plot the figure\n",
    "fig = plt.figure()\n",
    "ax = fig.gca(projection='3d')\n",
    "surf = ax.plot_surface(X,Y,Z, cmap=cm.coolwarm)\n",
    "ax.view_init(20,-120)\n",
    "ax.set_xlabel('X')\n",
    "ax.set_ylabel('Y')\n",
    "ax.set_zlabel('Z')\n",
    "fig.colorbar(surf, shrink=0.6)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Simple plane fit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best fit plane: [[ -3.68183005e+11   9.73243362e+11  -1.13814731e+12 ...,  -6.00391205e+10\n",
      "   -1.08203029e+12   1.46569096e+12]\n",
      " [ -9.47991633e+12   8.22360082e+11   3.70751445e+11 ...,  -2.65304402e+12\n",
      "    3.33542268e+12  -2.15341208e+12]\n",
      " [  2.65414996e+12   4.63032751e+11   3.89730614e+12 ...,  -6.25955539e+12\n",
      "    2.74145362e+11  -1.73344009e+12]\n",
      " ..., \n",
      " [ -9.98910345e+11   3.23600180e+12  -3.52406256e+11 ...,  -2.28510003e+12\n",
      "   -3.36365096e+12  -1.44071474e+12]\n",
      " [ -1.26588999e+12  -4.72002641e+11   6.15422898e+11 ...,  -3.82783222e+11\n",
      "   -3.34211406e+12   2.84297917e+12]\n",
      " [ -2.01216115e+11   1.24471110e+12  -4.77144576e+11 ...,  -3.25870227e+10\n",
      "    1.63610980e+12  -2.26078079e+12]]\n"
     ]
    }
   ],
   "source": [
    "M = np.vstack((np.ones(len(X)), X, Y)).T\n",
    "bestfit = np.linalg.lstsq(M,Z)[0]\n",
    "print('Best fit plane:', bestfit)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Multilinear regression model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      z   R-squared:                       0.988\n",
      "Model:                            OLS   Adj. R-squared:                  0.988\n",
      "Method:                 Least Squares   F-statistic:                 4.033e+05\n",
      "Date:                Sat, 30 Jul 2016   Prob (F-statistic):               0.00\n",
      "Time:                        13:13:23   Log-Likelihood:                -14448.\n",
      "No. Observations:               10201   AIC:                         2.890e+04\n",
      "Df Residuals:                   10198   BIC:                         2.892e+04\n",
      "Df Model:                           2                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept     -5.0166      0.010   -507.939      0.000      -5.036      -4.997\n",
      "x              3.0010      0.003    885.894      0.000       2.994       3.008\n",
      "y             -0.5002      0.003   -147.665      0.000      -0.507      -0.494\n",
      "==============================================================================\n",
      "Omnibus:                        2.654   Durbin-Watson:                   1.998\n",
      "Prob(Omnibus):                  0.265   Jarque-Bera (JB):                2.658\n",
      "Skew:                           0.039   Prob(JB):                        0.265\n",
      "Kurtosis:                       2.995   Cond. No.                         2.92\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "# calculate fit, P-values, confidence intervals etc.\n",
    "X = X.flatten()\n",
    "Y = Y.flatten()\n",
    "Z = Z.flatten()\n",
    "# Convert the data into a Pandas DataFrame\n",
    "df = pd.DataFrame({'x':X, 'y':Y, 'z':Z})\n",
    "\n",
    "# Fit the model\n",
    "model = ols(\"z ~ x + y\", df).fit()\n",
    "\n",
    "# Print the summary\n",
    "print(model.summary())"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
